home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / xdme_1.84_src.lha / XDME / include / libraries / reqtools.h < prev   
Encoding:
C/C++ Source or Header  |  1994-12-22  |  9.5 KB  |  556 lines

  1. #ifndef LIBRARIES_REQTOOLS_H
  2. #define LIBRARIES_REQTOOLS_H
  3. /*
  4. ** $Filename: libraries/reqtools.h $
  5. ** $Release: 2.1 $
  6. ** $Revision: 38.10 $
  7. **
  8. ** reqtools.library definitions
  9. **
  10. ** (C) Copyright 1991-1993 Nico François
  11. ** All Rights Reserved
  12. */
  13.  
  14. #ifndef EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif 
  17.  
  18. #ifndef EXEC_LISTS_H
  19. #include <exec/lists.h>
  20. #endif 
  21.  
  22. #ifndef EXEC_LIBRARIES_H
  23. #include <exec/libraries.h>
  24. #endif 
  25.  
  26. #ifndef EXEC_SEMAPHORES_H
  27. #include <exec/semaphores.h>
  28. #endif 
  29.  
  30. #ifndef LIBRARIES_DOS_H
  31. #include <libraries/dos.h>
  32. #endif 
  33.  
  34. #ifndef LIBRARIES_DOSEXTENS_H
  35. #include <libraries/dosextens.h>
  36. #endif 
  37.  
  38. #ifndef LIBRARIES_DISKFONT_H
  39. #include <libraries/diskfont.h>
  40. #endif 
  41.  
  42. #ifndef GRAPHICS_TEXT_H
  43. #include <graphics/text.h>
  44. #endif 
  45.  
  46. #ifndef UTILITY_TAGITEM_H
  47. #include <utility/tagitem.h>
  48. #endif 
  49.  
  50. #define REQTOOLSNAME "reqtools.library"
  51. #define REQTOOLSVERSION 38L
  52.  
  53.  
  54.  
  55. #define RTPREF_FILEREQ 0L
  56. #define RTPREF_FONTREQ 1L
  57. #define RTPREF_PALETTEREQ 2L
  58. #define RTPREF_SCREENMODEREQ 3L
  59. #define RTPREF_VOLUMEREQ 4L
  60. #define RTPREF_OTHERREQ 5L
  61. #define RTPREF_NR_OF_REQ 6L
  62.  
  63. struct ReqDefaults {
  64.  ULONG Size;
  65.  ULONG ReqPos;
  66.  UWORD LeftOffset;
  67.  UWORD TopOffset;
  68.  UWORD MinEntries;
  69.  UWORD MaxEntries;
  70.  };
  71.  
  72. struct ReqToolsPrefs {
  73.  
  74.  ULONG PrefsSize;
  75.  struct SignalSemaphore PrefsSemaphore;
  76.  
  77.  ULONG Flags;
  78.  struct ReqDefaults ReqDefaults[RTPREF_NR_OF_REQ];
  79.  };
  80.  
  81. #define RTPREFS_SIZE \
  82.  (sizeof (struct ReqToolsPrefs) - sizeof (struct SignalSemaphore) - 4)
  83.  
  84.  
  85.  
  86. #define RTPRB_DIRSFIRST 0L
  87. #define RTPRF_DIRSFIRST (1L<<RTPRB_DIRSFIRST)
  88. #define RTPRB_DIRSMIXED 1L
  89. #define RTPRF_DIRSMIXED (1L<<RTPRB_DIRSMIXED)
  90. #define RTPRB_IMMSORT 2L
  91. #define RTPRF_IMMSORT (1L<<RTPRB_IMMSORT)
  92. #define RTPRB_NOSCRTOFRONT 3L
  93. #define RTPRF_NOSCRTOFRONT (1L<<RTPRB_NOSCRTOFRONT)
  94.  
  95.  
  96.  
  97. struct ReqToolsBase {
  98.  struct Library LibNode;
  99.  UBYTE RTFlags;
  100.  UBYTE pad[3];
  101.  BPTR SegList;
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  struct IntuitionBase *IntuitionBase;
  109.  struct GfxBase *GfxBase;
  110.  struct DosLibrary *DOSBase;
  111.  
  112.  struct Library *GadToolsBase;
  113.  struct Library *UtilityBase;
  114.  
  115.  
  116.  
  117.  
  118.  UWORD RealOpenCnt;
  119.  UWORD AvailFontsLock;
  120.  struct AvailFontsHeader *AvailFontsHeader;
  121.  ULONG FontsAssignType;
  122.  BPTR FontsAssignLock;
  123.  struct AssignList *FontsAssignList;
  124.  struct ReqToolsPrefs ReqToolsPrefs;
  125.  UWORD prefspad;
  126.  };
  127.  
  128.  
  129. #define RT_FILEREQ 0L
  130. #define RT_REQINFO 1L
  131. #define RT_FONTREQ 2L
  132.  
  133. #define RT_SCREENMODEREQ 3L
  134.  
  135.  
  136.  
  137.  
  138.  
  139. struct rtFileRequester {
  140.  ULONG ReqPos;
  141.  UWORD LeftOffset;
  142.  UWORD TopOffset;
  143.  ULONG Flags;
  144.   struct Hook *Hook;
  145.  
  146.  char *Dir; 
  147.  char *MatchPat; 
  148.  
  149.  struct TextFont *DefaultFont;
  150.  ULONG WaitPointer;
  151.  
  152.  ULONG LockWindow;
  153.  ULONG ShareIDCMP;
  154.  struct Hook *IntuiMsgFunc;
  155.  UWORD reserved1;
  156.  UWORD reserved2;
  157.  UWORD reserved3;
  158.  UWORD ReqHeight; 
  159.  
  160.  };
  161.  
  162.  
  163.  
  164. struct rtFileList {
  165.  struct rtFileList *Next;
  166.  ULONG StrLen; 
  167.  char *Name;
  168.  };
  169.  
  170.  
  171.  
  172. struct rtVolumeEntry {
  173.  ULONG Type; 
  174.  char *Name;
  175.  };
  176.  
  177.  
  178.  
  179.  
  180.  
  181. struct rtFontRequester {
  182.  ULONG ReqPos;
  183.  UWORD LeftOffset;
  184.  UWORD TopOffset;
  185.  ULONG Flags;
  186.   struct Hook *Hook;
  187.  
  188.  struct TextAttr Attr; 
  189.  
  190.  struct TextFont *DefaultFont;
  191.  ULONG WaitPointer;
  192.  
  193.  ULONG LockWindow;
  194.  ULONG ShareIDCMP;
  195.  struct Hook *IntuiMsgFunc;
  196.  UWORD reserved1;
  197.  UWORD reserved2;
  198.  UWORD reserved3;
  199.  UWORD ReqHeight; 
  200.  
  201.  };
  202.  
  203.  
  204.  
  205.  
  206.  
  207. struct rtScreenModeRequester {
  208.  ULONG ReqPos;
  209.  UWORD LeftOffset;
  210.  UWORD TopOffset;
  211.  ULONG Flags;
  212.  ULONG private1;
  213.  
  214.  ULONG DisplayID; 
  215.  UWORD DisplayWidth; 
  216.  UWORD DisplayHeight; 
  217.  
  218.  struct TextFont *DefaultFont;
  219.  ULONG WaitPointer;
  220.  ULONG LockWindow;
  221.  ULONG ShareIDCMP;
  222.  struct Hook *IntuiMsgFunc;
  223.  UWORD reserved1;
  224.  UWORD reserved2;
  225.  UWORD reserved3;
  226.  UWORD ReqHeight; 
  227.  
  228.  UWORD DisplayDepth; 
  229.  UWORD OverscanType; 
  230.  ULONG AutoScroll; 
  231.  
  232.  };
  233.  
  234.  
  235.  
  236.  
  237.  
  238. struct rtReqInfo {
  239.  ULONG ReqPos;
  240.  UWORD LeftOffset;
  241.  UWORD TopOffset;
  242.  ULONG Width; 
  243.  char *ReqTitle; 
  244.  ULONG Flags;
  245.  struct TextFont *DefaultFont; 
  246.  ULONG WaitPointer;
  247.  
  248.  ULONG LockWindow;
  249.  ULONG ShareIDCMP;
  250.  struct Hook *IntuiMsgFunc;
  251.  
  252.  };
  253.  
  254.  
  255.  
  256.  
  257.  
  258. struct rtHandlerInfo {
  259.  ULONG private1;
  260.  ULONG WaitMask;
  261.  ULONG DoNotWait;
  262.  
  263.  };
  264.  
  265.  
  266.  
  267. #define CALL_HANDLER (ULONG)0x80000000
  268.  
  269.  
  270.  
  271.  
  272. #define RT_TagBase TAG_USER
  273.  
  274.  
  275.  
  276. #define RT_Window (RT_TagBase+1)
  277.  
  278. #define RT_IDCMPFlags (RT_TagBase+2)
  279.  
  280. #define RT_ReqPos (RT_TagBase+3)
  281.  
  282. #define RT_LeftOffset (RT_TagBase+4)
  283.  
  284. #define RT_TopOffset (RT_TagBase+5)
  285.  
  286. #define RT_PubScrName (RT_TagBase+6)
  287.  
  288. #define RT_Screen (RT_TagBase+7)
  289.  
  290. #define RT_ReqHandler (RT_TagBase+8)
  291.  
  292. #define RT_DefaultFont (RT_TagBase+9)
  293.  
  294. #define RT_WaitPointer (RT_TagBase+10)
  295.  
  296. #define RT_Underscore (RT_TagBase+11)
  297.  
  298. #define RT_ShareIDCMP (RT_TagBase+12)
  299.  
  300. #define RT_LockWindow (RT_TagBase+13)
  301.  
  302. #define RT_ScreenToFront (RT_TagBase+14)
  303.  
  304. #define RT_TextAttr (RT_TagBase+15)
  305.  
  306. #define RT_IntuiMsgFunc (RT_TagBase+16)
  307.  
  308. #define RT_Locale (RT_TagBase+17)
  309.  
  310.  
  311.  
  312. #define RTEZ_ReqTitle (RT_TagBase+20)
  313.  
  314.  
  315. #define RTEZ_Flags (RT_TagBase+22)
  316.  
  317. #define RTEZ_DefaultResponse (RT_TagBase+23)
  318.  
  319.  
  320.  
  321. #define RTGL_Min (RT_TagBase+30)
  322.  
  323. #define RTGL_Max (RT_TagBase+31)
  324.  
  325. #define RTGL_Width (RT_TagBase+32)
  326.  
  327. #define RTGL_ShowDefault (RT_TagBase+33)
  328.  
  329. #define RTGL_GadFmt (RT_TagBase+34)
  330.  
  331. #define RTGL_GadFmtArgs (RT_TagBase+35)
  332.  
  333. #define RTGL_Invisible (RT_TagBase+36)
  334.  
  335. #define RTGL_BackFill (RT_TagBase+37)
  336.  
  337. #define RTGL_TextFmt (RT_TagBase+38)
  338.  
  339. #define RTGL_TextFmtArgs (RT_TagBase+39)
  340.  
  341. #define RTGL_Flags RTEZ_Flags
  342.  
  343.  
  344.  
  345. #define RTGS_Width RTGL_Width
  346.  
  347. #define RTGS_AllowEmpty (RT_TagBase+80)
  348.  
  349. #define RTGS_GadFmt RTGL_GadFmt
  350.  
  351. #define RTGS_GadFmtArgs RTGL_GadFmtArgs
  352.  
  353. #define RTGS_Invisible RTGL_Invisible
  354.  
  355. #define RTGS_BackFill RTGL_BackFill
  356.  
  357. #define RTGS_TextFmt RTGL_TextFmt
  358.  
  359. #define RTGS_TextFmtArgs RTGL_TextFmtArgs
  360.  
  361. #define RTGS_Flags RTEZ_Flags
  362.  
  363.  
  364.  
  365. #define RTFI_Flags (RT_TagBase+40)
  366.  
  367. #define RTFI_Height (RT_TagBase+41)
  368.  
  369. #define RTFI_OkText (RT_TagBase+42)
  370.  
  371. #define RTFI_VolumeRequest (RT_TagBase+43)
  372.  
  373. #define RTFI_FilterFunc (RT_TagBase+44)
  374.  
  375. #define RTFI_AllowEmpty (RT_TagBase+45)
  376.  
  377.  
  378.  
  379. #define RTFO_Flags RTFI_Flags
  380.  
  381. #define RTFO_Height RTFI_Height
  382.  
  383. #define RTFO_OkText RTFI_OkText
  384.  
  385. #define RTFO_SampleHeight (RT_TagBase+60)
  386.  
  387. #define RTFO_MinHeight (RT_TagBase+61)
  388.  
  389. #define RTFO_MaxHeight (RT_TagBase+62)
  390.  
  391.  
  392. #define RTFO_FilterFunc RTFI_FilterFunc
  393.  
  394.  
  395.  
  396. #define RTSC_Flags RTFI_Flags
  397.  
  398. #define RTSC_Height RTFI_Height
  399.  
  400. #define RTSC_OkText RTFI_OkText
  401.  
  402. #define RTSC_PropertyFlags (RT_TagBase+90)
  403.  
  404. #define RTSC_PropertyMask (RT_TagBase+91)
  405.  
  406. #define RTSC_MinWidth (RT_TagBase+92)
  407.  
  408. #define RTSC_MaxWidth (RT_TagBase+93)
  409.  
  410. #define RTSC_MinHeight (RT_TagBase+94)
  411.  
  412. #define RTSC_MaxHeight (RT_TagBase+95)
  413.  
  414. #define RTSC_MinDepth (RT_TagBase+96)
  415.  
  416. #define RTSC_MaxDepth (RT_TagBase+97)
  417.  
  418. #define RTSC_FilterFunc RTFI_FilterFunc
  419.  
  420.  
  421.  
  422. #define RTFI_Dir (RT_TagBase+50)
  423.  
  424. #define RTFI_MatchPat (RT_TagBase+51)
  425.  
  426. #define RTFI_AddEntry (RT_TagBase+52)
  427.  
  428. #define RTFI_RemoveEntry (RT_TagBase+53)
  429.  
  430. #define RTFO_FontName (RT_TagBase+63)
  431.  
  432. #define RTFO_FontHeight (RT_TagBase+64)
  433.  
  434. #define RTFO_FontStyle (RT_TagBase+65)
  435.  
  436. #define RTFO_FontFlags (RT_TagBase+66)
  437.  
  438. #define RTSC_ModeFromScreen (RT_TagBase+80)
  439.  
  440. #define RTSC_DisplayID (RT_TagBase+81)
  441.  
  442. #define RTSC_DisplayWidth (RT_TagBase+82)
  443.  
  444. #define RTSC_DisplayHeight (RT_TagBase+83)
  445.  
  446. #define RTSC_DisplayDepth (RT_TagBase+84)
  447.  
  448. #define RTSC_OverscanType (RT_TagBase+85)
  449.  
  450. #define RTSC_AutoScroll (RT_TagBase+86)
  451.  
  452.  
  453.  
  454. #define RTPA_Color (RT_TagBase+70)
  455.  
  456.  
  457.  
  458. #define RTRH_EndRequest (RT_TagBase+60)
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465. #define REQPOS_POINTER 0L
  466. #define REQPOS_CENTERWIN 1L
  467. #define REQPOS_CENTERSCR 2L
  468. #define REQPOS_TOPLEFTWIN 3L
  469. #define REQPOS_TOPLEFTSCR 4L
  470.  
  471.  
  472. #define REQ_CANCEL 0L
  473. #define REQ_OK 1L
  474.  
  475.  
  476. #define FREQB_NOBUFFER 2L
  477. #define FREQF_NOBUFFER (1L<<FREQB_NOBUFFER)
  478.  
  479.  
  480. #define FREQB_MULTISELECT 0L
  481. #define FREQF_MULTISELECT (1L<<FREQB_MULTISELECT)
  482. #define FREQB_SAVE 1L
  483. #define FREQF_SAVE (1L<<FREQB_SAVE)
  484. #define FREQB_NOFILES 3L
  485. #define FREQF_NOFILES (1L<<FREQB_NOFILES)
  486. #define FREQB_PATGAD 4L
  487. #define FREQF_PATGAD (1L<<FREQB_PATGAD)
  488. #define FREQB_SELECTDIRS 12L
  489. #define FREQF_SELECTDIRS (1L<<FREQB_SELECTDIRS)
  490.  
  491.  
  492. #define FREQB_FIXEDWIDTH 5L
  493. #define FREQF_FIXEDWIDTH (1L<<FREQB_FIXEDWIDTH)
  494. #define FREQB_COLORFONTS 6L
  495. #define FREQF_COLORFONTS (1L<<FREQB_COLORFONTS)
  496. #define FREQB_CHANGEPALETTE 7L
  497. #define FREQF_CHANGEPALETTE (1L<<FREQB_CHANGEPALETTE)
  498. #define FREQB_LEAVEPALETTE 8L
  499. #define FREQF_LEAVEPALETTE (1L<<FREQB_LEAVEPALETTE)
  500. #define FREQB_SCALE 9L
  501. #define FREQF_SCALE (1L<<FREQB_SCALE)
  502. #define FREQB_STYLE 10L
  503. #define FREQF_STYLE (1L<<FREQB_STYLE)
  504.  
  505.  
  506. #define SCREQB_SIZEGADS 13L
  507. #define SCREQF_SIZEGADS (1L<<SCREQB_SIZEGADS)
  508. #define SCREQB_DEPTHGAD 14L
  509. #define SCREQF_DEPTHGAD (1L<<SCREQB_DEPTHGAD)
  510. #define SCREQB_NONSTDMODES 15L
  511. #define SCREQF_NONSTDMODES (1L<<SCREQB_NONSTDMODES)
  512. #define SCREQB_GUIMODES 16L
  513. #define SCREQF_GUIMODES (1L<<SCREQB_GUIMODES)
  514. #define SCREQB_AUTOSCROLLGAD 18L
  515. #define SCREQF_AUTOSCROLLGAD (1L<<SCREQB_AUTOSCROLLGAD)
  516. #define SCREQB_OVERSCANGAD 19L
  517. #define SCREQF_OVERSCANGAD (1L<<SCREQB_OVERSCANGAD)
  518.  
  519.  
  520. #define EZREQB_NORETURNKEY 0L
  521. #define EZREQF_NORETURNKEY (1L<<EZREQB_NORETURNKEY)
  522. #define EZREQB_LAMIGAQUAL 1L
  523. #define EZREQF_LAMIGAQUAL (1L<<EZREQB_LAMIGAQUAL)
  524. #define EZREQB_CENTERTEXT 2L
  525. #define EZREQF_CENTERTEXT (1L<<EZREQB_CENTERTEXT)
  526.  
  527.  
  528. #define GLREQB_CENTERTEXT EZREQB_CENTERTEXT
  529. #define GLREQF_CENTERTEXT EZREQF_CENTERTEXT
  530. #define GLREQB_HIGHLIGHTTEXT 3L
  531. #define GLREQF_HIGHLIGHTTEXT (1L<<GLREQB_HIGHLIGHTTEXT)
  532.  
  533.  
  534. #define GSREQB_CENTERTEXT EZREQB_CENTERTEXT
  535. #define GSREQF_CENTERTEXT EZREQF_CENTERTEXT
  536. #define GSREQB_HIGHLIGHTTEXT GLREQB_HIGHLIGHTTEXT
  537. #define GSREQF_HIGHLIGHTTEXT GLREQF_HIGHLIGHTTEXT
  538.  
  539.  
  540. #define VREQB_NOASSIGNS 0L
  541. #define VREQF_NOASSIGNS (1L<<VREQB_NOASSIGNS)
  542. #define VREQB_NODISKS 1L
  543. #define VREQF_NODISKS (1L<<VREQB_NODISKS)
  544. #define VREQB_ALLDISKS 2L
  545. #define VREQF_ALLDISKS (1L<<VREQB_ALLDISKS)
  546.  
  547.  
  548. #ifndef NO_REQTOOLS_OBSOLETE
  549. #define REQHOOK_WILDFILE 0L
  550. #define REQHOOK_WILDFONT 1L
  551. #define FREQB_DOWILDFUNC 11L 
  552. #define FREQF_DOWILDFUNC (1L<<FREQB_DOWILDFUNC)
  553. #endif
  554.  
  555. #endif 
  556.